package com.neusoft.crm.controller;

import com.neusoft.crm.po.*;
import com.neusoft.crm.service.IClientContributionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 统计报表前端接口类
 *
 * @author bingo
 */
@RestController
public class ClientContributionController {

    @Autowired
    private IClientContributionService clientContributionService;

    /**
     * 客户列表
     *
     * @param clientInfo 请求体：客户，对应状态属性非空
     * @return 符合对应状态的客户列表
     */
    @RequestMapping("/selectClientInfoByStatus")
    public List<ClientInfo> selectClientInfoByStatus(@RequestBody ClientInfo clientInfo) {
        return clientContributionService.selectClientInfoByStatus(clientInfo);
    }

    /**
     * 模糊查询客户列表
     *
     * @param clientInfo 请求体：客户，对应状态属性非空
     * @return 符合要求的客户列表
     */
    @RequestMapping("/selectClientInfoByTag")
    public List<ClientInfo> selectClientInfoByTag(@RequestBody ClientInfo clientInfo) {
        return clientContributionService.selectClientInfoByTag(clientInfo);
    }

    /**
     * 模糊查询流失客户列表
     *
     * @param clientInfo 请求体：客户，对应状态属性非空
     * @return 符合要求的流失客户列表
     */
    @RequestMapping("/selectLossClientByTag")
    public List<ClientInfo> selectLossClientByTag(@RequestBody ClientInfo clientInfo) {
        return clientContributionService.selectLossClientByTag(clientInfo);
    }

    /**
     * 地区名称列表，填充下拉框
     *
     * @return 所有地区信息
     */
    @RequestMapping("/selectAllAreaName")
    public List<DataArea> selectAllAreaName() {
        return clientContributionService.selectAllAreaName();
    }

    /**
     * 等级名称列表，填充下拉框
     *
     * @return 所有客户等级信息
     */
    @RequestMapping("/selectAllLevelName")
    public List<DataClientLevel> selectAllLevelName() {
        return clientContributionService.selectAllLevelName();
    }

    /**
     * 客户服务类型列表，填充下拉框
     *
     * @return 所有服务类型信息
     */
    @RequestMapping("/selectAllServerType")
    public List<DataServerType> selectAllServerType() {
        return clientContributionService.getAllServerType();
    }

    /**
     * 客户服务请求列表
     *
     * @return 所有服务请求信息
     */
    @RequestMapping("/selectAllClientServer")
    public List<ClientServer> getAllClientServer() {
        return clientContributionService.getAllClientServer();
    }

    /**
     * 统计正常状态客户数量
     *
     * @return 正常状态客户信息
     */
    @RequestMapping("/getClientAmount")
    public List<ClientInfo> getClientAmount() {
        return clientContributionService.getClientAmount();
    }

    /**
     * 查找所有客户经理
     *
     * @return 客户经理列表
     */
    @RequestMapping("/getAllClientManager")
    public List<SysUser> getAllClientManager() {
        return clientContributionService.getAllClientManager();
    }

}
